////////////////////////////////////////////////
//	File	:	"CObjectManager.h"
//
//	Author	:	Mason Miller
//
//	Purpose	:	To contain and manage all of our game objects.
////////////////////////////////////////////////

#ifndef _COBJECTMANAGER_H_
#define _COBJECTMANAGER_H_
#include <vector>
using std::vector;

#include "IBaseInterface.h"

class CObjectManager
{
private:
	vector<IBaseInterface*> m_vObjectList;

	CObjectManager(void);
	~CObjectManager(void);
	CObjectManager(const CObjectManager&);
	CObjectManager& operator=(const CObjectManager&);

	static CObjectManager* instance;

public:
	static CObjectManager* GetInstance(void);
	void DeleteInstance(void);

	void UpdateObjects(float fElapsedTime);
	void RenderObjects(void);

	void AddObject(IBaseInterface* pObject);
	void RemoveObject(IBaseInterface* pObject);

	void RemoveAllObjects(void);
	void CheckCollisions(void);
};

#endif